package vip.xiaonuo.pm.modular.project.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import vip.xiaonuo.common.pojo.CommonEntity;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 项目信息
 * </p>
 *
 * @author xhs
 * @since 2025-06-04
 */
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName(value = "pm_project", autoResultMap = true)
public class PmProjectEntity extends CommonEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId("ID")
    private String id;

    /**
     * 项目名称
     */
    @TableField("PROJECT_NAME")
    private String projectName;

    /**
     * 项目编号
     */
    @TableField("PROJECT_NO")
    private Integer projectNo;

    /**
     * 项目经理ID
     */
    @TableField("PROJECT_MANAGER_ID")
    private String projectManagerId;

    /**
     * 项目责任部门ID
     */
    @TableField("PROJECT_OWNER_DEPT_ID")
    private String projectOwnerDeptId;

    /**
     * 财务类型
     */
    @TableField("FINANCIAL_TYPE")
    private String financialType;

    /**
     * 项目类型
     */
    @TableField("PROJECT_TYPE")
    private String projectType;

    /**
     * 项目单位ID
     */
    @TableField("PROJECT_UNIT_ID")
    private String projectUnitId;

    /**
     * 客户名称ID
     */
    @TableField("ENTERPRISE_ID")
    private Integer enterpriseId;

    /**
     * 项目开始时间
     */
    @TableField("START_TIME")
    private Date startTime;

    /**
     * 项目结束时间
     */
    @TableField("END_TIME")
    private Date endTime;

    /**
     * 项目立项日期
     */
    @TableField("INITIATION_TIME")
    private Date initiationTime;

    /**
     * 项目关闭日期
     */
    @TableField("CLOSE_TIME")
    private Date closeTime;

    /**
     * 项目状态
     */
    @TableField("PROJECT_STATUS")
    private String projectStatus;

    /**
     * 关联产品ID
     */
    @TableField("PRODUCT_ID")
    private String productId;

    /**
     * 项目目标
     */
    @TableField("PROJECT_TARGET")
    private String projectTarget;

    /**
     * 项目计划
     */
    @TableField("PROJECT_PLAN")
    private String projectPlan;

    /**
     * 建设内容
     */
    @TableField("PROJECT_SCOPE")
    private String projectScope;

    /**
     * 验收人ID
     */
    @TableField("ACCEPTOR_ID")
    private Integer acceptorId;

    /**
     * 项目材料状态
     */
    @TableField("PROJECT_MATERIAL_STATUS")
    private String projectMaterialStatus;

    /**
     * 排序码
     */
    @TableField("SORT_CODE")
    private Integer sortCode;

    /**
     * 扩展信息
     */
    @TableField("EXT_JSON")
    private String extJson;
}
